package com.chenjt.jvm.second.five_classLoader;

import com.sun.net.ssl.internal.ssl.Provider;
import sun.security.ec.CurveDB;

import java.net.URL;

/**
 * 注释：
 *
 * @author chenjt
 * @date 2025/7/3 8:43
 */
public class ClassLoaderTest {

    public static void main(String[] args) {
        System.out.println("********启动类加载器********");
        // 获取BootstrapClassLoader能够加载的api路径
        URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
        for (URL url : urls) {
            System.out.println(url.toExternalForm());
        }
        // 从上面的路径中随意选择一个类，来看看他的类加载器是什么：引导类加载器
        ClassLoader classLoader = java.security.Provider.class.getClassLoader();
        // 打印出来是null的就是引导类加载器
        System.out.println(classLoader);

        System.out.println("********扩展类加载器********");
        String extDirs = System.getProperty("java.ext.dirs");
        for(String path : extDirs.split(";")){
            System.out.println(path);
        }

        // 从上面的路径随意选择一个类，来看看他的类加载器是什么：扩展类加载器
        ClassLoader classLoader1 = CurveDB.class.getClassLoader();
        // sun.misc.Launcher$ExtClassLoader@4b67cf4d
        System.out.println(classLoader1);

    }


}
